1. Field of the Invention
The present invention relates to the design of computer systems that support efficient references to objects defined within an object-oriented programming system. More specifically, the present invention relates to a method and an apparatus for supporting read-only objects within an object-addressed memory hierarchy.
2. Related Art
As object-oriented programming languages become more widely used, computer systems are being designed to manipulate objects more efficiently. In particular, some proposed object-addressed memory hierarchies include object-addressed caches that facilitate lookups based on location-independent object identifiers (OIDs) without having to first translate the OIDs into corresponding physical addresses. Furthermore, during cache miss operations, these object-addressed memory hierarchies also support translations between OIDs (used to access copies of objects in the object-addressed caches) and corresponding physical addresses (used to access copies of the objects in main memory).
Unfortunately, these proposed object-addressed memory hierarchies do not provide support for read-only copies of objects. This makes it hard to incorporate such object-addressed memory hierarchies into modern distributed object systems, which allow read-only copies of an object to reside on multiple hosts. Allowing read-only copies of an object to reside on multiple hosts provides significant performance advantages, because it enables each host to access a read-only copy of the object in its local cache, so long as the host only performs read operations on the object. Note that these local cache accesses can be orders of magnitude faster than non-local accesses.
Hence, what is needed is a method and an apparatus that supports a read-only copy of an object within a distributed object-addressed memory hierarchy.